The present invention relates to network connections in general and in particular to network connections and routing paths associated with a cluster of data processing systems.
In many network environments, data processing systems operate in a cluster of data processing systems. For example, International Business Machines Corporation""s SYSPLEX provides of cluster of OS/390 computers or operating system images. Often, applications executing on the data processing systems in the cluster of data processing systems may wish to communicate both with data processing systems inside and outside the cluster.
For example, a server application executing on a data processing system in the cluster may receive a request from a client outside the cluster. This request may be for information provided by a second application executing on a different data processing system in the cluster. The server may then send a request or otherwise access the second application executing on the different data processing system in the cluster. If the initial request from the client was a secure request, then the request to the second application may also need to be a secure request.
However, the same security protocols used to communicate with the client outside the cluster may not be needed to communicate with the second application within the cluster if the connection to the data processing system associated with the second application is trusted. For example, the connection between the data processing systems may be trusted if the data processing systems are in the same location and, therefore, the connection between the data processing systems may have only minimal risk of eavesdropping by an unauthorized party. The overhead associated with the security protocol on the connection between the first application and the second application may be avoided if the first application is made aware that the second application is connected over a trusted connection.
Thus, it may be beneficial to be able to provide connection information to applications so that the applications may tailor their operations for increased efficiency based on the connection information. In light of the above discussion, a need exists for an efficient mechanism to provide network connection information to applications executing in a cluster of computers or data processing systems.
Accordingly, it is an object of the present invention to provide methods, systems and computer program products which can provide connection information about network connections to data processing systems in a cluster of data processing systems.
A further object of the present invention is to allow for the automatic maintenance of such information so as to allow the information to be provided to applications executing in a cluster of data processing systems.
A still further object of the present invention is to allow for the automatic updating of such connection information so as to maintain the currency of the information.
A still further object of the present invention is to allow for differing configurations of data processing systems to provide connection information to applications.
These and other objects of the present invention may be provided by systems, methods, and/or computer program products which provide connection information about connections to communication protocol stacks in a cluster of data processing systems by distributing location information between communication protocol stacks in a group of stacks within the cluster. The distributed location information about addresses and operating system images or data processing systems of communication protocol stacks is utilized to generate a list of addresses corresponding to stacks in the group so that this information may be provided to applications requesting the information from the communication protocol stacks.
By establishing a group of communication protocol stacks in the cluster, connection information provided to an application may be tailored to the specific configuration of a cluster of data processing systems. Furthermore, by utilizing the communication protocol stacks to distribute location information between themselves, the connection information may be kept current by distributing changes between the communication protocol stacks. Such information exchange may be made automatically without operator intervention by distributing such information when a communication protocol stack joins the group, has a change in its configuration or leaves the group. Also, by maintaining the information at each communication protocol stack in the group, connection information may be maintained accessible to applications without requiring the overhead of accessing a central monitoring function or repository for information about connections and without requiring each application to maintain a copy of the connection information.
Particular embodiments of the present invention include methods, systems and/or computer program products for generating connection information associated with a connection from a first communication protocol stack by establishing a group of communication protocol stacks associated with a cluster of data processing systems. The first communication protocol stack is in the group of communication protocol stacks. Location information is distributed between the first communication protocol stack and other communication protocol stacks in the group of communication protocol stacks so as to provide location information to each communication protocol stack in the group of communication protocol stacks which identifies the location of each communication protocol stack in the group of communication protocol stacks.
The first communication protocol stack may then generate a list of locations which are associated with the group of communication protocol stacks based on the distributed location information. Utilizing the generated list, it may be determined if the connection from the first communication protocol stack is to a location in the list of locations and connection information generated specifying the connection as within the cluster of data processing systems if such is the case. The connection information may be returned to an application associated with the first communication protocol stack in response to receiving a request for connection information from the application.
In yet another embodiment of the present invention, a plurality of groups of communication protocol stacks is established and the first communication protocol stack is a member of at least two of the groups. In such a case, information may be distributed about members of each group and lists generated identifying locations in the groups. Connection information which specifies the group which includes the source and destination may then be provided to a requesting application.
In a further embodiment, the location information comprises routing addresses associated with communication protocol stacks in the group of communication protocol stacks. In such an embodiment, a list of routing addresses associated with the group of communication protocol stacks may be generated based on the distributed location information. Then, the determination of whether the connection is to a location in the group may be accomplished by determining if at least one of a source or a destination routing address associated with the connection is included in the list of routing addresses. It may be further determined the route associated with the connection is a one hop route.
The location information may also include a data processing system identifier associated with communication protocol stacks in the group of communication protocol stacks. In such an embodiment, a list of data processing systems associated with the group of communication protocol stacks may be generated based on the distributed location information. Furthermore, it may then be determined if both a source and a destination routing address associated with the connection are associated with the same data processing system. In particular, the data processing system information may be an MVS image identifier.
In a further embodiment of the present invention, the location information is distributed by the first communication protocol stack by joining the group of communications protocol stacks and then broadcasting to other communication protocol stacks in the group of communication protocol stacks a location information message containing location information associated with the first communication protocol stack. The first communication protocol stack also receives location information messages from the other communication protocol stacks in the group of communication protocol stacks. Preferably, the location information comprises at least one of routing address information associated with the communication protocol stack and data processing information associated with the communication protocol stack. More preferably, the routing address information comprises an Internet Protocol address range associated with the communication protocol stack.
In a still further embodiment of the present invention, where the generated connection information is provided from the first communication protocol stack to an application associated with the first communication protocol stack, the application may modify the communication protocol utilized in sending information over the connection based on the provided generated connection information. For example, a common memory area may be utilized rather than the connection if the generated connection information indicates that the connection is within the same data processing system in the cluster. Furthermore, the application may retain the generated connection information at the application so that if the application need to re-establish the connection to the destination, during a subsequent communication the connection may be re-established based on the retained generated connection information so as to assure that the connection will be within the group.
In a further embodiment of the present invention, data may be transmitted by the application over the connection in non-canonical form if the generated connection information indicates that the connection is within the group. Furthermore, data may be transmitted over the connection utilizing an unsecured communication protocol if the generated connection information indicates that the connection is within the group. In addition, character translation may be avoided if the character translation is not required to communication with other data processing systems in the group.
While the invention has been described above primarily with respect to the method aspects of the invention, both systems and/or computer program products are also provided.